#include <iostream>
#include <unistd.h>
#include <sys/types.h>
#include <signal.h>

//执行信号的默认处理动作(kill -2/-SIGINT pid)(2号信号默认处理动作进程本身终止)
/*int main()
{
    while (1)
    {
        std::cout << "I am process! pid:" << getpid() << std::endl;
        sleep(1);
    }
    return 0;
}
*/

//执行自定义处理动作(使用系统调用signal())(2号信号自定义处理动作打印一行消息)

/*void handler(int signo)//参数signo就是signal()函数的第一个参数
{
    std::cout<<"get a signal,number id: "<<signo<<std::endl;
}

int main()
{
    //signal()函数调用结束,handler方法并不会立即被执行,相当于设置对应信号的处理方法
    //未来进程收到对应的信号才会执行hanler方法;
    //进程一直没有收到SIGINT信号,hander()方法也一直不会被调用
    signal(SIGINT,handler);
    while (1)
    {
        std::cout << "I am process! pid:" << getpid() << std::endl;
        sleep(1);
    }
    return 0;
}
*/


int main()
{
    //忽略信号
    //#define SIG_IGN ((__sighandler_t)  1)	/* Ignore signal.  */
    signal(SIGINT,SIG_IGN);
    while (1)
    {
        std::cout << "I am process! pid:" << getpid() << std::endl;
        sleep(1);
    }
    return 0;
}